EN FR
EN FR




Application Domains
Bibliography




Application Domains
Bibliography


Section: New Results

Formal Verification of Transformations on Data Dependency in Synchronous Compilers

Participants : Van-Chan Ngo, Jean-Pierre Talpin, Paul Le Guernic.

We propose an approach to prove the data dependency semantic preservation of transformations in a synchronous compiler (such as that of Signal). In the Signal language, the scheduling or data dependency is expressed implicitly through polychronous equations. We use Synchronous Data-flow Dependence Graphs (SDD Graphs) [46] , [50] to formalize the data dependency semantics of polychronous equations. A tuple <G,C,fE> is a SDD graph if and only if:

  • G=<N,E,I,O> is a dependence graph <N,E> with I/O nodes: the inputs I and the output O such that I, O are subsets of N and I and O are disjoint.

  • C is a set of constraints, called clocks.

  • fE:EC is a mapping labeling each edge with a clock; it specifies the existence condition of the edges.

For instance, for the counter example:

zv:=v$1|v:=(1whenrst)defaultzv+1

we get a SDD graph with:

  • N={1,v,zv+1}

  • E={(1,v),(zv+1,v)}

  • C={rst ^,v ^¬rst ^}

  • fE((1,v))=rst ^,fE((zv+1,v))=v ^¬rst ^

Let SDD 1 =<G 1 ,C 1 ,fE 1 > and SDD 2 =<G 2 ,C 2 ,fE 2 > to be two SDD graphs which represent the data dependency semantics of source and transformed programs, we say that SDD 2 is a correct transformation of SDD 1 on data dependency, or SDD 2 refines SDD 1 w.r.t the data dependency semantics, if it satisfies that for any pair of nodes x,yG 1 G 2 with (x,y)E 1 :

  • fE 1 (x,y))((x,y)E 2 fE 2 (x,y)) (reinforcement)

  • (fE 2 (x,y)fE 2 (y,x)false) (deadlock consistency)